package com.xiguanlezz.cn.api.remote;

import com.xiguanlezz.cn.api.remote.request.Request;
import com.xiguanlezz.cn.api.remote.response.Response;

/**
 * @Author：习惯了种种
 * @CreateDate：2024/11/19 14:31
 * @Description：请求操作接口
 */
public interface Requester {

    /**
     * 关闭连接
     */
    void close();

    /**
     * 带超时时间的发送请求方法
     */
    Response request(Request request, long timeoutMills) throws Exception;

    /**
     * 不带超时时间的发送请求方法
     */
    RequestFuture requestFuture(Request request) throws Exception;

    /**
     * 带回调方法的异步发送请求方法
     */
    void asyncRequest(Request request, RequestCallBack requestCallBack) throws Exception;

}
